package br.com.framework.client.permissao.entidade;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "GRUPO_TELA")
public class GrupoTela implements EntityGeneric {

	private static final long serialVersionUID = 5328666398898100461L;

	@Id
	@Column(name = "ID")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "GRUPO_TELA_SEQ_ID")
	@SequenceGenerator(name = "GRUPO_TELA_SEQ_ID", sequenceName = "GRUPO_TELA_SEQ_ID", allocationSize = 1)
	private Integer id;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_GRUPO")
	private Grupo grupo;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TELA")
	private Tela tela;

	@Column(name = "PERMISSAO")
	private String permissao;

	@Transient
	private boolean selected;

	public GrupoTela() {

	}

	public GrupoTela(GrupoTela grupoTela) {
		setGrupo(new Grupo(grupoTela.getGrupo()));
		setTela(new Tela(grupoTela.getTela()));
		setPermissao(grupoTela.getPermissao());
		setSelected(grupoTela.isSelected());
	}

	public Grupo getGrupo() {
		return grupo;
	}

	public void setGrupo(Grupo grupo) {
		this.grupo = grupo;
	}

	public Tela getTela() {
		return tela;
	}

	public void setTela(Tela tela) {
		this.tela = tela;
	}

	public String getPermissao() {
		return permissao;
	}

	public void setPermissao(String permissao) {
		this.permissao = permissao;
	}

	public boolean isSelected() {
		return selected;
	}

	public void setSelected(boolean selected) {
		this.selected = selected;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

}